package com.sunday.common.nacos.discovery;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html
 *
 * 在 bootstrap.properties 中配置 Nacos server 的地址和应用名
 * spring.cloud.nacos.config.server-addr=127.0.0.1:8848
 *
 * spring.application.name=example
 * 说明：之所以需要配置 spring.application.name ，是因为它是构成 Nacos 配置管理 dataId字段的一部分。
 *
 * 在 Nacos Spring Cloud 中，dataId 的完整格式如下：
 *
 * ${prefix}-${spring.profiles.active}.${file-extension}
 * prefix 默认为 spring.application.name 的值，也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
 * spring.profiles.active 即为当前环境对应的 profile，详情可以参考 Spring Boot文档。 注意：当 spring.profiles.active 为空时，对应的连接符 - 也将不存在，dataId 的拼接格式变成 ${prefix}.${file-extension}
 * file-exetension 为配置内容的数据格式，可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
 *
 */
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${datasource.url:}")
    private String url;

    @Value("${datasource.username:}")
    private String username;

    @Value("${datasource.password:}")
    private String password;

    @RequestMapping("/get")
    public String get() {
        return "url:" + url + "</br>username:" + username + "</br>password:" + password;
    }
}